redis 简介

前言

redis是一个开源的使用C语言编写、遵守BSD协议、支持网络、可基于内存支持持久化的Key-Value缓存系统,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。

redis特点

redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
redis 与其他 key - value 缓存产品有以下几个特点:

  1. redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用;
  2. redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储;
  3. redis支持数据的备份,即master-slave模式的数据备份;
  4. redis支持virtual memory,可以限定内存使用大小,当内存使用量达到阈值时,会触发swap机制将不常用的key-value中的value值swap到磁盘,从而突破物理内存的限制;

与memcached的对比

目前大多数商用缓存系统中redis和memcached是目前使用最为广泛的分布式缓存系统,而ehcache作为应用内缓存系统使用很广泛,并且这三种缓存系统都支持设置缓存的失效时间,方便应用程序快速接入缓存系统。

下面列举redis和memcached之间的主要区别:

  1. redis支持List,Set,Zset,Map等复杂的数据结构缓存,memcached不支持;
  2. redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用;
  3. redis支持virtual memory,可以限定内存使用大小,当内存使用量达到阈值时,会触发swap机制,将不常用的缓存数据swap到磁盘中去,而memcached采用LRU算法,丢弃不常用的缓存数据;
  4. redis是单线程的,天生很好的支持事务操作;而memcached是多线程的,能够很好的利用多核的优势;
  5. redis支持数据的备份,即master-slave模式的数据备份;memcached本身不支持,需要借助第三方插件repcached完成主从复制;
  6. redis缓存value最大支持512MB,而memcached缓存value最大只支持1MB且key最大支持255个字节;